package com.shrct.businessprocess.organization;

import com.shrct.businessprocess.organization.impl.RCEmployeeImpl;
import com.shrct.businessprocess.organization.proxy.RCEmployeeProxy;
import edu.fudan.langlab.domain.organization.Party;
import edu.fudan.langlab.domain.security.User;
import edu.fudan.mylang.pf.EntityImplementation;

@EntityImplementation(implementBy = RCEmployeeImpl.class)
public interface RCEmployee extends Party {
  public abstract String getEid();
  
  public abstract RCEmployee setEid(final String eid);
  
  public abstract String getComment();
  
  public abstract RCEmployee setComment(final String comment);
  
  public abstract RCEmployee getDirectManager();
  
  public abstract RCEmployee setDirectManager(final RCEmployee directManager);
  
  public abstract Boolean getIsLeave();
  
  public abstract RCEmployee setIsLeave(final Boolean isLeave);
  
  public abstract User asUser();
  
  public abstract void leave();
  
  public abstract RCEmployeeProxy toProxy();
}
